home *** CD-ROM | disk | FTP | other *** search
/ Info-Mac 3 / Info_Mac_1994-01.iso / Graphics / Utility / ARTAbrot 1.1 / DSPConstants.h < prev    next >
Text File  |  1993-03-26  |  26KB  |  448 lines

  1. /*
  2.     File:        DSPConstants.h
  3.  
  4.     Contains:    Constants for the Macintosh DSP API
  5.  
  6.     Written by:
  7.  
  8.     Copyright:    © 1990-1992 by Apple Computer, Inc., all rights reserved.
  9.  
  10.     Change History (most recent first):
  11.  
  12.        <LW4>     3/21/93    ejb        add sio feature bit: kdspRegisterDSPOutputSifter;  remove
  13.                                     kdspStdTelecomCompatible feature bit; redefine
  14.                                     kdspStdSndCompatible to be bit zero.
  15.        <LW3>      2/4/93    ejb        replace CanBeBusMaster with  CanOnlyAccessDSPZone
  16.        <LW2>      2/4/93    ejb        Remove obsolete cpu constant for for '32c ' devices; define cpu
  17.                                     device feature bi CanBeBusMaster
  18.       <SM14>    12/10/92    JDB        ejb: Code review changes, Beta buster release.
  19.       <SM13>     12/2/92    JDB        Added error for inserting a task when the driver is handling a
  20.                                     frame overrun condition.
  21.       <SM12>     12/1/92    ejb        add support for 'dcon' selector.
  22.       <SM11>    11/13/92    JDB        Moved more public selectors from DSPConstantsPrivate.h
  23.       <SM10>    10/27/92    JDB        Moved the public driver selectors from DSPConstantsPrivate.h
  24.        <SM9>     10/6/92    JDB        Moved kdspSIOTypeDevice and kdspBIOTypeDevice from private to
  25.                                     public.
  26.        <SM8>      9/9/92    APS        Changed kdspSectionsNotInSameModule to
  27.                                     kdspSectionsNotInSameTask, which is what it should have been in
  28.                                     the first place
  29.        <SM7>     8/27/92    APS        Moved a few section flags to the private file.
  30.        <SM6>     7/15/92    JDB        Changed our error return codes to the new “blessed” numbers.
  31.        <SM5>     6/24/92    ejb        Merged in constants from DSPDriver.h, a file which is being
  32.                                     obsoleted.
  33.        <SM4>     6/22/92    JDB        d12 final candidate roll-in.
  34.         <97>     6/22/92    APS        Added kdspTaskNotInstalled to the errors.
  35.        <SM3>     6/21/92    ejb        Checked in BOMII d12 release.
  36.       --------------------------------------------------------------------------------------------------
  37.         <96>     6/18/92    APS        Put the original kdspSmoothModule back in the GPBFlags. Moved
  38.                                     some of these flags to the private file.
  39.         <95>     6/18/92    APS        Moved around the module flag so that the inital sectn can be
  40.                                     stored in the upper 16 bits.
  41.         <94>     6/17/92    APS        Moved some of the module flags to DSPConstantsPrivate.h.
  42.         <93>     6/17/92    EJB        Moving in evt selector for num realtime frames from private
  43.                                     constants file.
  44.         <92>     6/17/92    APS        Added kdspTwoStacks.
  45.         <91>     6/17/92    APS        Added kdspOnChipStack and kdspOffChipStack.
  46.         <90>     6/17/92    EJB        Moving some DSP API constants from DSP3210.h into this file for
  47.                                     Snoopy.
  48.         <89>     6/16/92    APS        Added kdspUseActual.
  49.         <88>     6/15/92    APS        Added some comments.
  50.         <87>     6/15/92    EJB        Enhance BIO Pin support.
  51.         <86>     6/15/92    EJB        Enhance BIO Pin support.
  52.         <85>     6/14/92    EJB        Simplify the GPB messages.
  53.         <84>     6/14/92    EJB        Simplify the GPB messages.
  54.         <83>     6/12/92    APS        Added constants for run time patching of link nodes.
  55.         <82>      6/9/92    EJB        Changed FIFO Message priority.
  56.         <81>      6/9/92    JDB        Added the kdspDeviceCantBeSlave error code.
  57.         <80>      6/4/92    JDB        Changing the kdspExternal section flag to be the same as
  58.                                     kdspLeaveSection.
  59.         <79>      6/3/92    APS        Added kdspVanillaProgram as a module flag.
  60.         <78>      6/3/92    EJB        Changes to module and section flags for HIHO buffers.
  61.         <77>      6/3/92    EJB        Changes to module and section flags for HIHO buffers.
  62.         <76>      6/3/92    EJB        Changes to module and section flags for HIHO buffers.
  63.         <75>      6/3/92    EJB        Changes to module and section flags for HIHO buffers.
  64.         <74>      6/2/92    EJB        Removed runtime error messages.
  65.         <73>      6/1/92    EJB        Changes in FIFO messages.
  66.         <72>      6/1/92    APS        Added kdspDontUpdateGPBPref for module flags.
  67.         <71>     5/28/92    EJB        Add new FIFO message for fifo interrupt when fifo goes not
  68.                                     empty. HipNet needs this for HappyFAX.
  69.         <69>     4/20/92    EJB        Add some HIHO constants.
  70.         <67>     4/16/92    JB        Adding errors for synchronizing tasks.
  71.                  4/15/92     APS     Added kdspLoadFIFOSection and kdspSaveFIFOSection
  72.                   4/ 3/92     APS     Added Errors for LinkedFIFOs
  73.  
  74. */
  75. //=========================================================================================
  76.  
  77. #ifndef __DSPConstants__
  78. #define __DSPConstants__
  79.  
  80. //==========================================================================================
  81. //                         DSP MODULE/SECTION DEFINTIONS
  82. //==========================================================================================
  83.  
  84. //------------------------------------------------------------------------------------------
  85. //     FIFOFlags
  86. //------------------------------------------------------------------------------------------
  87. #define kdspFIFOMaskAllMessages            0x00000000    // disable all messages                    
  88.                                                     // (p) priority of FIFO messages in descending order 
  89. #define kdspFIFOEnableOverUnderMessage    0x00000001    // (3) enable message when FIFO transfer causes an overrun or underrun                                                            
  90. #define kdspFIFOEnableFullEmptyMessage  0x00000002    // (2) enable message when FIFO goes full or empty                
  91. #define kdspFIFOEnableHighLowMessage    0x00000004    // (1) enable message when FIFO goes at least half full or half empty
  92. #define kdspFIFOEnableLinkMessage        0x00000008    // (4) enable message when FIFO's link is traversed                                
  93.  
  94. #define kdspFIFOOverUnderTaskInactive    0x00000010    // if task accessing FIFO causes either FIFO overrun or underrun then set task inactive                                                            
  95. #define kdspFIFOFullEmptyTaskInactive    0x00000020    // if task accessing FIFO causes either FIFO full    or empty    then set task inactive                                                                
  96.  
  97. //------------------------------------------------------------------------------------------
  98. //    ModuleFlags (Check out DSPConstantsPrivate.h to see all of the flags)
  99. //------------------------------------------------------------------------------------------
  100. #define kdspAutoCache                     0x00000000    // select the auto cache model                
  101. #define    kdspDemandCache                    0x00000001    // select the demand cache model            
  102. #define kdspOnChipSectionTable            0x00000004    // put the section table on-chip
  103. #define kdspOnChipStack                    0x00000020    // A stack of the specified size will be created on-chip
  104. #define kdspOffChipStack                0x00000040    // A stack of the specified size will be created off-chip
  105.  
  106. //------------------------------------------------------------------------------------------
  107. //     GPBFlags (see DSPConstantsPrivate.h for the complete list of flags)
  108. //------------------------------------------------------------------------------------------
  109. #define kdspLumpyModule                    0x00000000    // use bnEstimate
  110. #define kdspSmoothModule                0x00000001    // see DSPConstantsPrivate.h
  111.  
  112. //------------------------------------------------------------------------------------------
  113. //    SectionFlags (some of these flags are defined in the private file)
  114. //------------------------------------------------------------------------------------------
  115. // Costs the DSP one instruction to use the following flags:
  116. #define    kdspLeaveSection                0x00000000    // do not load or save this section            
  117. #define    kdspLoadSection                    0x00000001    // load this section                         
  118. #define    kdspSaveSection                    0x00000002    // save this section                        
  119. #define    kdspClearSection                0x00000004    // fill this section with zeroes            
  120. #define    kdspSaveOnContextSwitch            0x00000008    // save this section on context switch        
  121.  
  122. #define    kdspExternal                    0x00000000    // Never loaded on chip                        
  123. #define    kdspBankA                        0x00000020    // load in bank A if possible                
  124. #define    kdspBankB                        0x00000040    // load in bank B if possible                
  125. #define    kdspAnyBank            (kdspBankA | kdspBankB)    // load anywhere                            
  126. #define kdspStaticSection                0x00000080    // this section statically allocated before runtime                    
  127.  
  128. #define kdspFIFOSection                    0x00000100    // section is an FIFO buffer                
  129. #define kdspReservedSectionFlag0200        0x00000200    // reserved
  130. #define kdspReservedSectionFlag0400        0x00000400    // when loading convert from a FIFO
  131. #define kdspReservedSectionFlag0800        0x00000800    // when saving  convert to   a FIFO
  132.  
  133. #define    kdspReservedSectionFlag1000        0x00001000    // this is a HIHO Section        
  134. #define kdspReservedSectionFlag2000        0x00002000    // this flag bit will hold the kdspToggleSectionTable fkag from the module's flag 
  135. #define kdspReservedSectionFlag4000        0x00004000    // when loading convert from a HIHO
  136. #define kdspReservedSectionFlag8000        0x00008000    // when saving  convert to   a HIHO
  137.  
  138. // Costs the DSP two instructions to use the following flags:
  139. #define kdspNotIOBufferSection            0x00010000    // All cases other than below                
  140. #define    kdspInputBuffer                    0x00020000    // section is an input buffer                
  141. #define    kdspOutputBuffer                0x00040000    // section is an output buffer                
  142. #define kdspReservedSectionFlag80000    0x00080000    // section is an InterTask Buffer            
  143. #define    kdspScalableSection                0x00100000    // section size can be scaled                
  144. #define kdspReservedSectionFlag200000    0x00200000    // Reserved for use by the DSP Manager                    
  145. #define    kdspDSPUseOnly                    0x00400000    // only DSP should modify this memory        
  146.  
  147. //------------------------------------------------------------------------------------------
  148. //     SectionDataTypes
  149. //------------------------------------------------------------------------------------------
  150. #define    kdspNonData                        0x00000000    // data in section is beyond description    
  151. #define    kdsp3200Float                    0x00000001    // data is 3200 float format                
  152. #define    kdspIEEEFloat                    0x00000002    // data is in IEEE float format                
  153. #define    kdspInt32                        0x00000003    // data is 32bit integer                    
  154. #define    kdspInt1616                        0x00000004    // data is 16bit integer packed                
  155. #define    kdspInt8888                        0x00000005    // data is 8bit integer packed                
  156. #define    kdspmuLaw                        0x00000006    // data is muLaw format                        
  157. #define    kdspALaw                        0x00000007    // data is A law format                        
  158. #define    kdspAppSpecificData                0x0000FFFF    // data is application specific                
  159.  
  160. //==========================================================================================
  161. //                         DSP CLIENT DEFINTIONS
  162. //==========================================================================================
  163. //------------------------------------------------------------------------------------------
  164. //     constants used by a client to specify where to insert a task
  165. //------------------------------------------------------------------------------------------
  166. #define    kdspHeadInsert                    0x00000004        // insert at head of list                    
  167. #define    kdspTailInsert                    0x00000008        // insert tail of list                        
  168. #define    kdspBeforeInsert                0x00000010        // insert before reference link                
  169. #define    kdspAfterInsert                    0x00000020        // insert after reference link                
  170. #define kdspAnyPositionInsert            kdspHeadInsert    // caller does not care where it goes    
  171.  
  172. //------------------------------------------------------------------------------------------
  173. //    constants for messages received by client tasks
  174. //------------------------------------------------------------------------------------------
  175. #define kdspBIOPinChangedState            0x62696f70    //  'biop'    bio pin has changed state
  176.  
  177. #define kdspFIFOMessage                    0x66000000    //    'f'        prefix used for FIFO messages
  178. #define kdspFIFOLinkMessage                0x666c6e6b    //  'flnk'    the FIFO's link was traversed
  179. #define kdspFIFOOverrunMessage            0x666f7672    //    'fovr'    the FIFO's buffer filled  before the FIFO write completed                                            
  180. #define kdspFIFOUnderrunMessage            0x66756e64    //    'fund'    the FIFO's buffer emptied before the FIFO read  completed
  181. #define kdspFIFOFullMessage                0x6666756c    //    'fful'    the FIFO's buffer is exactly full                                        
  182. #define kdspFIFOEmptyMessage            0x66656d70    //    'femp'    the FIFO's buffer is exactly empty                                        
  183. #define kdspFIFOHighMessage                0x66686967    //    'fhig'    the FIFO's buffer is at least half full  but not exactly full                                                
  184. #define kdspFIFOLowMessage                0x666c6f77    //    'flow'    the FIFO's buffer is at least half empty but not exactly empty                                                
  185. #define kdspFIFOPrimeMessage            0x66707269    //    'fpri'    application specific    
  186.  
  187. #define kdspExceptionMessage            0x78000000    //  'x'        prefix used for dsp exception messages
  188. #define kdspExceptionReset                0x78727374    //    'xrst'                                    
  189. #define kdspExceptionBusError            0x78627573    //    'xbus'                            
  190. #define kdspExceptionIllegalOpcode        0x78696c6c    //    'xill'    
  191. #define kdspExceptionReservedOne        0x78727631    //    'xrv1'        
  192. #define kdspExceptionAddressError        0x78616472    //    'xadr'    
  193. #define kdspExceptionDAUOverUnderflow    0x78646175    //    'xdau'    
  194. #define kdspExceptionNotANumber            0x786e616e    //    'xnan'    
  195. #define kdspExceptionReservedTwo        0x78727632    //    'xrv2'        
  196. #define kdspExceptionExternalIntZero    0x78657830    //    'xex0'        
  197. #define kdspExceptionTimer                0x7874696d    //    'xtim'    
  198. #define kdspExceptionReservedThree        0x78727633    //    'xrv3'    
  199. #define kdspExceptionSIOInputBufFull    0x78736962    //    'xsib'        
  200. #define kdspExceptionSIOOutputBufEmpty    0x78736f62    //    'xsob'    
  201. #define kdspExceptionSIODMAInputFrame    0x78736966    //    'xsif'
  202. #define kdspExceptionSIODMAOutputFrame    0x78736f66    //    'xsof'    
  203. #define kdspExceptionExternalIntOne        0x78657831    //    'xex1'    
  204.  
  205. #define kdspExceptionRuntimeError        0x78657272    //    'xerr'    
  206.  
  207. #define kdspGPBMessage                    0x67000000    //    'g'     prefix used for GPB messages                        
  208. #define kdspGPBTaskActive                0x67616374    //    'gact'    the task is   active                        
  209. #define kdspGPBTaskInactive                0x67696e61    //    'gina'    the task is inactive                            
  210. #define kdspGPBFrameOverrun                0x676f7672    //    'govr'    this task was involved in a frame ovverrun and is now inactive                            
  211. #define kdspGPBFrameSkip                0x67736b70    //    'gskp'    this task has skipped one or more frames due to a frame ovverun                            
  212.  
  213. //------------------------------------------------------------------------------------------
  214. // read/write permission constants for clients
  215. //------------------------------------------------------------------------------------------
  216. #define kdspWritePermission                0x0001
  217. #define kdspReadPermission                0x0002
  218. #define kdspReadWritePermission         (kdspWritePermission|kdspReadPermission)
  219.  
  220. //------------------------------------------------------------------------------------------
  221. // constants for indexed devices
  222. //------------------------------------------------------------------------------------------
  223.  
  224. // CPU processor types
  225. #define kdsp3210                        '3210'
  226.  
  227. // General constants
  228. #define kdspDeviceFeatures                'feat'
  229.  
  230. // CPU constants
  231. #define kdspDeviceName                    'dnam'
  232. #define kdspDeviceICON                    'dicn'
  233. #define kdspSlotNumber                    'dslt'
  234. #define kdspProcessorType                'ptyp'
  235. #define kdspPhaseRegister                'phas'
  236. #define kdspPhaseRollover                'phro'
  237. #define    kdspFrameRate                    'fmrt'
  238.  
  239. // IO constants
  240. #define kdspIODeviceName                'ionm'
  241. #define kdspIODeviceICON                'ioic'
  242.  
  243. // Selectors for BIO devices
  244. #define    kdspBIOPinState                    'bios'
  245. #define    kdspBIOPinDirection                'biod'
  246. #define    kdspBIOInterruptMask            'biom'
  247. #define    kdspBIOInterruptHandler            'bioh'
  248.  
  249. // Selectors for SIO devices
  250. #define    kdspSampleRate                    'smrt'
  251. #define    kdspSampleFormat                'smsz'
  252.  
  253. //  Use option's current index
  254. #define    kdspCurrentIndex                -1
  255.  
  256. // CPU device feature bits
  257. #define kdspMotherBoard                    0
  258. #define kdspCanBeSlaveCPUDevice            1
  259. #define kdspCanOnlyAccessDSPZone        2
  260.  
  261. //  IO device types
  262. #define kdspSIOTypeDevice                 0
  263. #define    kdspBIOTypeDevice                 1
  264.  
  265. // SIO device feature bits
  266. #define kdspStdSoundCompatible            0
  267. #define kdspRegisterDSPOutputSifter        1
  268.  
  269. // BIO Pin constants
  270. #define kdspBIOPinZero                    (0)
  271. #define kdspBIOPinOne                    (1)
  272. #define kdspBIOPinTwo                    (2)
  273. #define kdspBIOPinThree                    (3)
  274. #define kdspBIOPinFour                    (4)
  275. #define kdspBIOPinFive                    (5)
  276. #define kdspBIOPinSix                    (6)
  277. #define kdspBIOPinSeven                    (7)
  278.  
  279. #define kdspBIOConfigurePinForInput        (0)
  280. #define    kdspBIOConfigurePinForOutput    (1)
  281.  
  282. #define kdspBIOPinKeepCurrentState        (0)
  283. #define    kdspBIOPinSetToZero                (1)
  284. #define    kdspBIOPinSetToOne                (2)
  285. #define    kdspBIOPinToggleCurrentState    (3)
  286.  
  287. //------------------------------------------------------------------------------------------
  288. // constants for DSP API functions
  289. //------------------------------------------------------------------------------------------
  290. #define kevtMessageToHost                (17)
  291. #define kevtCacheSection                (22)
  292. #define kevtCopyFIFO                    (23)
  293. #define    kevtGetSectionSize                (43)
  294. #define kevtGPBSetUseActual                (44)
  295. #define kevtGPBExpectedCycles            (45)
  296. #define kevtGPBElapsedCycles            (46)
  297. #define kevtSemaphoreSet                (47)
  298. #define kevtSemaphoreClear                (48)
  299. #define kevtGPBChangeMode                (49)
  300. #define    kevtSetSkipCount                (50)
  301. #define kevtSetTaskInactive                (51)
  302. #define kevtBlockMove                    (53)
  303. #define    kevtNumRealTimeFrames            (113)    
  304.  
  305. //==========================================================================================
  306. //    constants for errors returned by Macintosh DSP API
  307. //==========================================================================================
  308.  
  309. //------------------------------------------------------------------------------------------
  310. // Misc Errors
  311. //  Error numbers allocated to the Real-Time Manager:  -2600 -> -2674   (JDB 7/14)
  312. //     The next available error code number is -2669
  313. //    N.B. If you add an error, also add it to the DSPErrorStrings.r file.
  314. //------------------------------------------------------------------------------------------
  315. #define kdspUnimplemented                (-2626)     // This feature is not done                
  316. #define kdspParamErr                    (-2638)        // bad parameter passed in                
  317.  
  318. //------------------------------------------------------------------------------------------
  319. // DSPFIFO Errors
  320. //------------------------------------------------------------------------------------------
  321. #define kdspNotAFIFOSection                (-2634)        // The section is not a FIFO
  322. #define kdspNoMessageInterrupt            (-2636)        // no message passing without a vector
  323. #define kdspFIFOInUseByDSP                (-2653)        // This FIFO is currently being accessed by the DSP
  324. #define kdspTaskMustBeInActive            (-2654)        // Can only Dipose of InActive structures
  325. #define kdspNotFirstFIFO                (-2655)        // The FIFO must be the first fifo in the link to wrap it
  326.  
  327. //------------------------------------------------------------------------------------------
  328. // DSPList Errors
  329. //------------------------------------------------------------------------------------------
  330. #define    kdspPositionIllegalErr            (-2600)        // Illegal DSPPosition type                
  331. #define    kdspPositionBusyErr                (-2601)        // DSPPosition already occupied            
  332. #define kdspInvalidReferenceErr            (-2602)        // illegal insertion request            
  333. #define kdspNonExistantReferenceErr        (-2603)        // reference element does not exist        
  334. #define kdspNonExistantElementErr        (-2604)        // deletion element not found            
  335.  
  336. //------------------------------------------------------------------------------------------
  337. // DSPMemory Errors
  338. //------------------------------------------------------------------------------------------
  339. #define kdspMemFullErr                    (-2605)        // heap full, allocation failed            
  340. #define kdspAddressNotInZone            (-2606)        // address is not in a zone                
  341. #define kdspNilAddress                    (-2617)        // Trying to dispose of nil                
  342. #define kdspContainingNilAddress        (-2618)        // Trying to dispose of (nil, nil)        
  343. #define    kdspInvalidZoneSize                (-2619)        // Heap Size must be factor of four        
  344. #define    kdspInvalidZoneBase                (-2620)        // Heap base must be long word aligned    
  345.  
  346. //------------------------------------------------------------------------------------------
  347. // DSPClient Errors
  348. //------------------------------------------------------------------------------------------
  349. #define kdspDeviceNotFound                 (-2607)        // no device matching given name        
  350. #define kdspInvalidIndexErr                (-2608)        // no device (or whatever) matching index given        
  351. #define kdspDeviceHasActiveClients        (-2609)        // can't sign out device with clients    
  352. #define kdspInvalidPermission            (-2622)        // invalid permission for operation        
  353. #define kdspWritePermissionDenied        (-2623)        // client already exist w/ write perm    
  354. #define kdspClientNameInvalid            (-2624)        // client name must be [1……31] bytes    
  355. #define kdspInvalidOptionSelector        (-2625)        // options selector not recognized        
  356. #define    kdspInvalidIODeviceType         (-2641)        // invalid io device type, index out of range
  357. #define kdspInvalidClientICON            (-2651)        // An invalid ICON was passed in
  358. #define kdspDeviceCantBeSlave            (-2662)        // The specified cpu device cannot be a slave
  359.  
  360. //------------------------------------------------------------------------------------------
  361. // Resource Loader Errors
  362. //------------------------------------------------------------------------------------------
  363. #define kdspModuleNotFound                (-2610)        // the module does not exist            
  364. #define kdspModuleUncompatibleRate        (-2611)        // incompatible frame or sample rate    
  365. #define kdspUnknownDSPFResourceVersion    (-2613)        // DSPF resource not recognized            
  366. #define kdspUnknownDSPSectionTag        (-2614)        // DSPF resource not recognized    
  367. #define kdspZeroGPB                        (-2648)        // The Module has GPB set to zero.
  368. #define kdspTwoStacks                    (-2665)        // Can not have both an on-chip and an off-chip stack
  369.  
  370. //------------------------------------------------------------------------------------------
  371. // DSPStorage Errors
  372. //------------------------------------------------------------------------------------------
  373. #define kdspStorageNotFound                (-2629)        // theAmount and Location do no exist    
  374. #define kdspNotEnoughOnChipMemory        (-2630)        // not enough on-chip memory to allocate
  375.  
  376. //------------------------------------------------------------------------------------------
  377. // DSPAllocation Errors
  378. //------------------------------------------------------------------------------------------
  379. #define kdspCouldNotAllocate            (-2612)        // Could not allocate the module        
  380. #define kdspMoreThanOneModule            (-2621)        // can allocate only one module for now    
  381. #define kdspSectionAlreadyConnected        (-2627)        // One of the Sections has already been    
  382.                                                     // connected. (i.e. FIFO Sections)            
  383. #define kdspSectionsDoNotMatch            (-2628)        // the sections which are being         
  384.                                                     // connected either do not have the     
  385.                                                     // same size or the same type or
  386.                                                     // they are both input or both output
  387. #define kdspSectionsNotInSameTask        (-2640)        // The sections that are being connected
  388.                                                     // are not in the same task
  389. #define kdspSectionNotFound                (-2631)        // Could not find the specified section    
  390. #define kdspBothFIFOsAllocated            (-2632)        // Both FIFO sections have already been    
  391.                                                     // attached to FIFOs                    
  392. #define kdspHadToUseOffChipMemory        (-2633)        // at least 1 section which was supposed    
  393.                                                     // to be on-chip was set up off-chip.    
  394.                                                     // The module will still run, but not    
  395.                                                     // as quickly                            
  396. #define kdspAlreadyAllocated            (-2635)        // You can not make a mew ITB or         
  397.                                                     // connect sections if the task has        
  398.                                                     // already been allocated.                
  399. #define kdspTooManyITBs                    (-2637)        // You can not have more than             
  400.                                                     // MAX_MAP_SECTIONS ITBs                
  401. #define kdspInvalidModuleAddress        (-2646)        // Passed in a nil module address
  402. #define kdspAIAOMustLoadOrSave            (-2649)        // When connecting a FIFO to an AIAO, the
  403.                                                     // AIAO must move data or the connection
  404.                                                     // will not work.
  405. #define kdspFIFOsNotConnected            (-2650)        // You can not insert a task if all of the
  406.                                                     // FIFOs are not connected to other FIFOs.
  407. #define kdspNotAllocated                (-2652)        // You must insert the task before you can
  408.                                                     // call DSPGetSectionData
  409. #define kdspTaskNotInstalled            (-2666)        // You can not get the available on-chip memory
  410.                                                     // until after the task is installed
  411.                                                     
  412. //------------------------------------------------------------------------------------------
  413. // DSPTask Errors
  414. //------------------------------------------------------------------------------------------
  415. #define kdspTaskRefNumAlreadyAllocated    (-2615)        // trying to reuse used DSPTaskRefNum     
  416. #define kdspNilMessageActionProc        (-2639)        // passed in nil where MessageActionProc required
  417. #define kdspInvalidCPUDevicePtr            (-2642)        // passed in nil for the DSPCPUDeviceParamBlkPtr
  418. #define kdspInvalidTaskRefNumPtr        (-2643)        // passed in nil for the DSPTaskRefNumPtr
  419. #define kdspInvalidTaskAddress            (-2644)        // passed in nil for the DSPTaskAddressPtr
  420. #define kdspInvalidTaskRefNum            (-2645)        // passed in nil for the DSPTaskRefNum
  421. #define kdspInvalidTaskName                (-2647)        // length of name must be > 0 and < 31
  422. #define kdspNoMasterSlaveRelationship    (-2656)        // tasks to be synchronized must be on one
  423.                                                     // DSP or on DSPs that have master-slave relationship
  424. #define kdspAllTasksMustBeRealTime        (-2657)        // tasks to be synchronized that are on different
  425.                                                     // DSPs must all be in the real-time task list
  426. #define kdspNotEnoughTime                (-2658)        // didn’t have enough time to successfully synchronize
  427.                                                     // all the taks
  428. #define kdspChangingState                (-2659)        // task is in the process of going (in)active
  429. #define kdspAlreadyActive                (-2660)        // task is in already active
  430. #define kdspAlreadyInactive                (-2661)        // task is in already inactive
  431. #define kdspTimeOutErr                    (-2667)        // timed out trying to set the task inactive (probably a stupid time
  432.                                                     //  share task that never calls return(RV)!)  <SM10> JDB
  433. #define kdspFrameOverrunRecoveryErr        (-2668)        // DSP is in frame overrun recovery, can’t install now.
  434.                                                     
  435.  
  436. //------------------------------------------------------------------------------------------
  437. // DSPGPB Errors
  438. //------------------------------------------------------------------------------------------
  439. #define kdspNotEnoughGPB                (-2616)        // not enough real time for allocation    
  440.  
  441. //------------------------------------------------------------------------------------------
  442. // DSP Address Fixup Errors
  443. //------------------------------------------------------------------------------------------
  444. #define    kdspOnChipPatchup                (-2663)        // auto-init using address already on chip
  445. #define kdspBadRelocationType            (-2664)        // internal assert - unrecognized relocation type from linker
  446.  
  447. #endif
  448.